<?php

// Wenn der User schon eingeloggt ist, dann wird kein Login gepromtet
if (getUserID()) {
	return new Ret(USER_IS_LOGGED_IN);
}

// Returndaten vorbereiten
$login_ret = new Ret();

if ("POST" == @$_SERVER['REQUEST_METHOD']) {
	
	// Formular und Eingabe prüfen
	{
		// Prüfen, ob das Formular stimmt
		if (!isset($_POST['username'], $_POST['password'])) {
			$login_ret->add_error(INVALID_FORM);
			return $login_ret;
		}
		
		// Prüfen, ob die Eingaben valid sind
		if ('' == ($username = trim($_POST['username'])) or '' == ($password = trim($_POST['password']))) {
			$login_ret->add_error(ERR_FORM_FIELD_NOT_SET);
			return $login_ret;
		}
	}
	
	// Benutzer verifizieren
	{
		// UserDAO laden
		$UserDAO = DAOFactory::getInstance('User');
		
		// Benutzer verifizieren
		if (!$userid = $UserDAO->verify($username, $password)) {
			// Fehler zurückgeben
			$login_ret->add_error($UserDAO->get_error());
			return $login_ret;
		}
		
		// UserDAO sicherheitshalber unsetten
		unset($UserDAO);
	}
	
	// Einloggen
	{
		$_SESSION['userid'] = $userid;
		$login_ret->add_info(INFO_LOGGED_IN);
		return $login_ret;
	}
}

return $login_ret;
?>